package com.macro.mall.ums.service.account.bo;

import com.macro.mall.common.api.input.BaseInput;
import com.macro.mall.ums.enums.UserGenderEnum;
import com.macro.mall.ums.enums.UserSourceTypeEnum;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;

/**
 * 新增会员input
 *
 * @author xuyanjun
 * @date 2019-12-09
 */
@Valid
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class InsertMemberInput extends BaseInput {


    /**
     *
     */
    private Long memberLevelId;

    /**
     * 用户名
     */
    private String username;

    /**
     * 密码
     */
    private String password;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 手机号码
     */
    private String phone;

    /**
     * 头像
     */
    private String icon;

    /**
     * 性别：0->未知；1->男；2->女
     */
    private UserGenderEnum gender;

    /**
     * 生日
     */
    private LocalDate birthday;

    /**
     * 所做城市
     */
    private String city;

    /**
     * 职业
     */
    private String job;

    /**
     * 个性签名
     */
    private String personalizedSignature;

    /**
     * 用户来源
     */
    @NotNull(message = "用户来源不能为空。")
    private UserSourceTypeEnum sourceType;

    /**
     * 积分
     */
    private Integer integration;

    /**
     * 成长值
     */
    private Integer growth;

    /**
     * 剩余抽奖次数
     */
    private Integer luckeyCount;

    /**
     * 历史积分数量
     */
    private Integer historyIntegration;

    /**
     * 用户等级
     */
    @NotNull(message = "用户等级不能为空。")
    private Integer level;

    /**
     * 邀请码
     */
    @NotBlank(message = "邀请码不能为空。")
    private String invitationCode;

    /**
     * 上级id
     */
    private Long befId;

}
